diff options
| author | Adam Soltys <[email protected]> | 2024-08-30 20:04:29 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2024-08-30 20:04:29 -0700 |
| commit | df71664f20312e81134ee90ad561f55d3020ee0a (patch) | |
| tree | 3986d1c5aac77f256ed1091290bc067c899e2196 /src/routes/(app)/reset/[code]/+page.server.ts | |
| parent | 20337319212896c484ac0f8d3dfbac3b8d26f089 (diff) | |
| download | coinos-ui-df71664f20312e81134ee90ad561f55d3020ee0a.tar.gz coinos-ui-df71664f20312e81134ee90ad561f55d3020ee0a.zip | |
typescript
Diffstat (limited to 'src/routes/(app)/reset/[code]/+page.server.ts')
| -rw-r--r-- | src/routes/(app)/reset/[code]/+page.server.ts | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/routes/(app)/reset/[code]/+page.server.ts b/src/routes/(app)/reset/[code]/+page.server.ts new file mode 100644 index 00000000..67f2d919 --- /dev/null +++ b/src/routes/(app)/reset/[code]/+page.server.ts @@ -0,0 +1,30 @@ +import { fail, redirect } from "@sveltejs/kit"; +import { fd, post, login } from "$lib/utils"; + +export const actions = { + default: async ({ cookies, params, request }) => { + let ip = request.headers.get("cf-connecting-ip"); + let error; + + let { code } = params; + let { password } = await fd(request); + + try { + let user = await post("/reset", { code, password }); + user.password = password; + + try { + await login(user, cookies, ip); + error = null; + } catch (e) { + error ||= e.message; + } + + if (error) return fail(400, { error }); + redirect(307, `/${user.username}`); + } catch (e) { + console.log(e.message); + return fail(400, { error: e.message }); + } + }, +}; |
